package com.xygz.orm.transaction;

import com.xygz.orm.exception.ORMException;

import java.sql.SQLException;

/**
 * 事务服务接口定义
 *
 * @author xiyuan-lgz 2023-12-08 @version v1.0.0 新建与整理
 */
public interface TransactionService {
    /**
     * 获取服务编号
     *
     * @return 获取事务编号
     */
    public String getId();
    
    /**
     * 获取事务实例
     *
     * @return 事务实例
     * @throws ORMException 异常信息
     * @throws SQLException 异常信息
     */
    public Object getTransactionInstance() throws ORMException, SQLException;
    
    /**
     * 创建一个事务
     *
     * @param instance 实例
     * @return 事务实例
     * @throws ORMException 异常信息
     * @throws SQLException 异常信息
     **/
    public Transaction beginTransaction(Object instance) throws ORMException, SQLException;
}
